/**
 * @file TextLog.h
 * @author
 * @brief 用于输出到文本文件的log类
 * @version 1.0
 * @date 2020-08-17
 * 
 * @copyright Copyright (c) 2020
 * 
 */

#pragma once

#include <memory>
#include "data_struct/base/LogBase.h"

namespace behavior_controller
{

    class TextLogInfo;

    class TextLog : public LogBase
    {
    public:
        TextLog(std::string name, LogLevel lvl, std::string log_dir,
                std::string storage_log_dir = ""); //构造函数

        void Flush() const override; //清空

    private:
        void ErrorLog(const std::string &log) const override;
        void WarnLog(const std::string &log) const override;
        void InfoLog(const std::string &log) const override;
        void DebugLog(const std::string &log) const override;

        std::shared_ptr<TextLogInfo> logger_; //文本log信息存储类对象指针
    };

} // namespace behavior_controller
